home *** CD-ROM | disk | FTP | other *** search
/ Fritz: All Fritz / All Fritz.zip / All Fritz / FILES / MISCEOUS / BEALE2.LZH / BEALE2.C < prev    next >
Text File  |  1986-02-18  |  1KB  |  85 lines

  1. /*    beale2.c
  2.  *
  3.  *    a "C" program that decrypts the second Beale cipher,
  4.  *    by R.E.Sawyer, 3620 Spencer St. 30, Torrance, CA, 90503.
  5.  *
  6.  *    Modified by:
  7.  *    Ranny Fullinwider, 15922 Haven Hills, Houston, Tx. 77084
  8.  *    02/17/86
  9.  */
  10.  
  11. #include <stdio.h>
  12.  
  13. FILE  *fopen(), *kfil, *cfil;
  14. char  *keyfile, *cyfile;
  15. int cipher[764];
  16. char key[1323];
  17.  
  18. main(argc,argv)
  19. int argc;
  20. char *argv[];
  21. {
  22.     int i, j, k;
  23.  
  24.     if (argc != 3) {
  25.         printf("\nUsage:  beale2 b2 b0");
  26.         printf("\n\n (for fun, b2 and b0 may be replaced with other files)\n");
  27.         exit(0);
  28.     }
  29.  
  30.     printf("\nReading files ...\n\n");
  31.     read_cipher(argv[1]);
  32.     read_key(argv[2]);
  33.  
  34.     printf("Plaintext:\n\n");
  35.     i = 0;
  36.     j = 0;
  37.     while ((k = cipher[i++]) != '\0') {
  38.         printf("%c", tolower(key[k-1]));
  39.         if(j == 40) {
  40.             printf("\n");
  41.             j=0;
  42.         }
  43.         else
  44.             j++;
  45.     }
  46.     printf("\n");
  47.     exit(0);
  48. }
  49.  
  50. read_cipher(cypfile)
  51. char cypfile[];
  52. {
  53.     int i;
  54.     char *buf;
  55.  
  56.     if ((cfil = fopen(cypfile, "r")) == NULL)
  57.     {
  58.         printf("\nCan't open %s",cypfile);
  59.         exit();
  60.     }
  61.     i = 0;
  62.     while (fgets(buf, 80, cfil))
  63.         sscanf(buf, "%d", &cipher[i++]);
  64.     cipher[i] = '\0';
  65.     fclose(cfil);
  66. }
  67.  
  68. read_key(keyfile)
  69. char keyfile[];
  70. {
  71.     int i;
  72.     char *buf;
  73.  
  74.     if ((kfil = fopen(keyfile, "r")) == NULL)
  75.     {
  76.         printf("\nCan't open %s", keyfile);
  77.         exit();
  78.     }
  79.     i = 0;
  80.     while (fgets(buf, 80, kfil))
  81.         sscanf(buf, "%c", &key[i++]);
  82.     key[i] = '\0';
  83.     fclose(kfil);
  84. }
  85.